home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / faq / wdj0597.zip / TECHTIPS.ZIP / DCBUFFER.H < prev    next >
C/C++ Source or Header  |  1997-02-21  |  922b  |  37 lines

  1. // CDCBuffer - header file
  2.  
  3. // non-MFC version
  4. class CHDCBuffer
  5. {
  6.     HDC        m_hDC, m_hSrcDC;
  7.     HBITMAP m_hBmp, m_hOld;
  8.     RECT    m_rect;
  9.  
  10. public:
  11.     CHDCBuffer(HDC hSrcDC, RECT rect)
  12.     {
  13.         m_hSrcDC = hSrcDC;
  14.         m_rect = rect;
  15.         m_hDC = ::CreateCompatibleDC(m_hSrcDC);
  16.         m_hBmp = ::CreateCompatibleBitmap(m_hSrcDC,
  17.                             m_rect.right - m_rect.left,
  18.                             m_rect.bottom - m_rect.top);
  19.         m_hOld = (HBITMAP)::SelectObject(m_hDC, m_hBmp);
  20.     }
  21.  
  22.     ~CHDCBuffer()
  23.     {
  24.         ::BitBlt(m_hSrcDC, m_rect.left, m_rect.top, 
  25.                     m_rect.right - m_rect.left, 
  26.                     m_rect.bottom - m_rect.top, 
  27.                     m_hDC, 0, 0, SRCCOPY);
  28.         ::SelectObject(m_hDC, m_hOld);
  29.         DeleteObject(m_hBmp);
  30.         DeleteDC(m_hDC);
  31.     }
  32.  
  33.     operator HDC () {return m_hDC;}
  34. };
  35.  
  36.  
  37.